﻿using System;
using System.Collections.Generic;
using System.Security.Permissions;
using App.Interface;
using Domain.Entidades;
using Domain.Interfaces.Servicos;

namespace App
{
    public class UsuarioAppService : IUsuarioAppService
    {
        private readonly IUsuarioService _usuarioAppService;

        public UsuarioAppService(IUsuarioService usuarioAppService)

        {
            _usuarioAppService = usuarioAppService;
        }

        public int autentica_usuario(usuario_logado user)
        {


            try
            {

                return _usuarioAppService.autentica_usuario(user);

            }
            catch (Exception ex)
            {
                

                throw ex;
            }
            

        }

        public bool verifica_usuario()
        {
            return _usuarioAppService.verifica_usuario();

        }

        public VW_usuarios GetUsuarioLogado(int codigo)

        { 
            return _usuarioAppService.GetUsuarioLogado(codigo);

        }


        public bool Verifica_senha_antiga(string senha)
        {
            try
            {
                return _usuarioAppService.Verifica_senha_antiga(senha);
            }
            catch (Exception ex)
            {
                
                throw ex;
            }

        }


        public void Logout()
        {
            _usuarioAppService.Logout();

        }


        public void troca_senha(string senha)
        {
            try
            {
                _usuarioAppService.troca_senha(senha);
            }
            catch (Exception ex)
            {

                throw ex;
            }


        }
        public string busca_setor_unidade(string tipo, int uni)
        {

            try
            {
                return _usuarioAppService.busca_setor_unidade(tipo,uni);
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }

        public bool verifica_permissao(int permissao)
        {
            try
            {
               return _usuarioAppService.verifica_permissao(permissao);
            }
            catch (Exception ex)
            {
                
                throw ex;
            }

        }


        public List<VW_usuarios> Listar(string tipo, int set_uni, string nome)

        {
            try
            {
                return _usuarioAppService.Listar(tipo, set_uni, nome);
            }
            catch (Exception ex)
            {
                
                throw ex;
            }

        }

        public IEnumerable<VW_unidade> busca_unidades(int tipo)

        {
            try
            {
                return _usuarioAppService.busca_unidades(tipo);
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }

        public IEnumerable<VW_setor> busca_setores()
        {
            try
            {
                return _usuarioAppService.busca_setores();
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }
      
       public IEnumerable<VW_tipo_email_envio_usuario> busca_email(int tip, int unidade, int setor)
        {
            try
            {
               return _usuarioAppService.busca_email(tip,unidade,setor);
            }
            catch (Exception ex)
            {

                throw ex;
            }

        }
   


    }
}
